package com.blkj.iam.system.model.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @description: 前端用户信息
 * @author: Ethan
 * @create: 2025-04-21
 **/
@Data
public class ShowUserInfoVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description = "主键")
    private java.lang.String id;
    /**
     * 用户账号
     */
    @Schema(description = "用户账号")
    private java.lang.String username;
    /**
     * 真实姓名
     */
    @Schema(description = "真实姓名")
    private java.lang.String realname;
    /**
     * 租户ID
     */
    @Schema(description = "租户ID")
    private java.lang.String loginTenantId;
    /**
     * 使用状态(1-正常 0-禁用)
     */
    @Schema(description = "使用状态")
    private java.lang.Integer status;
    /**
     * 删除标记(1-删除 0-未删除)
     */
    @Schema(description = "删除标记")
    private java.lang.Integer delFlag;
    /**
     * 部门ID
     */
    @Schema(description = "部门ID")
    private java.lang.String departId;
    /**
     * 头像
     */
    @Schema(description = "头像")
    private java.lang.String avatar;
    /**
     * 性别(0-默认未知,1-男,2-女)
     */
    @Schema(description = "性别(0-默认未知,1-男,2-女)")
    private java.lang.Integer sex;
    /**
     * 电子邮件
     */
    @Schema(description = "电子邮件")
    private java.lang.String email;
    /**
     * 联系电话
     */
    @Schema(description = "联系电话")
    private java.lang.String phone;
    /**
     * 用户类型: 0-平台 1-监管 2-贸易 3-供箱单位 4-担保商 5-供应商 6-贸易方 7-(蒙）承运单位 8-（中）承运单位
     */
    @Schema(description = "用户类型: 0-平台 1-监管 2-贸易 3-供箱单位 4-担保商 5-供应商 6-贸易方 7-(蒙）承运单位 8-（中）承运单位")
    private java.lang.Integer userType;
    /**
     * 人员类型（ 0:后台用户  1：磅单登记人 2：入场确认人 3：正面吊司机 4：拉运司机 （掏箱运输） 5 ：叉车司机 6：出场确认人 7：报关人员 9:到场叫号人员 10:现场管理员 11:装卸队管理员 12:磅房管理员）
     */
    @Schema(description = "人员类型")
    private java.lang.Integer personType;
    /**
     * 用户类型：0-该机构主要用户，1-该机构额外用户
     */
    @Schema(description = "用户类型：0-该机构主要用户，1-该机构额外用户")
    private java.lang.Integer mainType;
    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String createBy;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;
    /**
     * 更新人
     */
    @Schema(description = "更新人")
    private String updateBy;
    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;
    /**
     * 部门编号
     */
    @Schema(description = "部门编号")
    private String orgCode;
    /**
     * 是否为管理员
     */
    @Schema(description = "是否为管理员")
    private Boolean isAdmin;

    public Boolean getIsAdmin() {
        return isAdmin != null ? isAdmin : false;
    }

    /**
     * 备注
     */
    private String remark;

    /**
     * 明文密码
     */
    private String mwPass;

    /**
     * 联系人
     */
    private String linkMan;
    /**
     * 雪花ID
     */
    private String idStr;
}

